home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / newsgroups / misc.20021006-20030409 / 000115_jaltman@watsun.cc.columbia.edu_Sun Dec 1 12:18:25 EST 2002.msg < prev    next >
Text File  |  2020-01-01  |  13KB  |  224 lines

  1. Article: 13896 of comp.protocols.kermit.misc
  2. Path: newsmaster.cc.columbia.edu!watsun.cc.columbia.edu!jaltman
  3. From: jaltman@watsun.cc.columbia.edu (Jeffrey Altman)
  4. Newsgroups: comp.protocols.kermit.misc
  5. Subject: A Letter to the Kermit Community
  6. Date: 1 Dec 2002 10:11:53 GMT
  7. Organization: Columbia University
  8. Lines: 208
  9. Message-ID: <ascn99$pl1$1@newsmaster.cc.columbia.edu>
  10. NNTP-Posting-Host: watsun.cc.columbia.edu
  11. X-Trace: newsmaster.cc.columbia.edu 1038737513 26273 128.59.39.2 (1 Dec 2002 10:11:53 GMT)
  12. X-Complaints-To: postmaster@columbia.edu
  13. NNTP-Posting-Date: 1 Dec 2002 10:11:53 GMT
  14. Xref: newsmaster.cc.columbia.edu comp.protocols.kermit.misc:13896
  15.  
  16. 1 December 2002:
  17.  
  18. Today marks the end of a significant period in my life.  For the last
  19. eight years I have been privileged to work on and support Kermit as my
  20. career.  I began working for Columbia University after nearly seven 
  21. years as a Kermit user and eventually as primary developer of OS/2
  22. C-Kermit which became the basis for Kermit 95 on Windows 95/98/ME
  23. and Windows NT4/2000/XP.
  24.  
  25. During this time the Kermit project shipped 23 releases.  The initial
  26. version of K95 was shipped on Oct 5, 1995 just seven months after I
  27. joined Columbia University.  K95 was not only a port of OS/2 C-Kermit
  28. to Windows but an attempt to make C-Kermit easy to understand for
  29. beginners by adding a Graphic Front End and to do so in a manner that
  30. would be inherently cross platform.  Back then our dreams were to
  31. build a front end that could be supported on OS/2 and 32-bit Windows
  32. with the ability to easily port it to MacOS and X-Windows.  At the
  33. time our development platform had to be selected Java was not even
  34. announced to the world.  (That occurred in early August 1995.)  We
  35. selected Zinc as our cross platfrom development environment.
  36. Unfortunately, cross platform development environments that wrap
  37. existing OS components tend to be lowest common denominator feature
  38. sets and result in apps that are not entirely what the end user
  39. expects.  (Java discovered this with the original AWT library and
  40. eventually constructed the Swing library to avoid the OS dependencies.)
  41.  
  42. For Kermit, the reliance on Zinc allowed us to easily support both
  43. OS/2 and Windows but resulted in significant compromises in features
  44. as the years went on.  The Zinc library was not only LCD but also 
  45. suffered from two significant problems:
  46.  
  47.  . it is a memory and gui resource hog
  48.  
  49.  . the authors never checked memory buffer overwrites
  50.  
  51. These two issues resulted in significant problems in pre-1.1.21
  52. releases of Kermit 95.  First, as the number of configurable items
  53. in the Settings Notebook increased the required gui resource allocation
  54. increased to more than 30% of the total gui resources available on
  55. Windows 95/98/ME.  This would result in unpredictable crashes.
  56.  
  57. The memory overwrite bugs were primarily caused by a failure to
  58. allocate enough memory for path names.  The Zinc library was
  59. originally developed to support DOS, 16-bit Windows, and OS/2.  The
  60. 8.3 filename restrictions coupled with the limited drive space
  61. available on those systems resulted in short pathnames.  It seems they
  62. never anticipated that anyone would want a pathname greater than 64
  63. characters.  Now with todays GUIs coupled with removal of the 8.3
  64. restrictions it is common for the filename to be 64 characters not
  65. even considering the rest of the pathname.  The memory overwrites
  66. produced data corruption in the Zinc databases that stored the
  67. Connection Configurations.  The problems became more obvious as users
  68. switched to Windows 2000 and began to install K95 in directories with
  69. long pathnames or across network shares access via UNC names.
  70.  
  71. For 1.1.21 and later these issues were addressed by a combination of
  72. extensive debugging of the Zinc libraries coupled with limiting the 
  73. number of GUI resources allocated at once.  It is due to the latter
  74. that the Settings Notebook was broken up into separate (although 
  75. annoying) settings pages.
  76.  
  77. I'm not going to say that the choice of Zinc was a disaster, but in
  78. hindsight it would have been better if the decision to use Zinc could
  79. have been put off until Java for desktop development began to
  80. stablize.  However, waiting until mid-1997 was not an option and now
  81. that Zinc has been deployed Kermit 95 has become dependent on its
  82. database format.  Any attempt to migrate to something else would
  83. require either abandoning the existing user data or re-implementing
  84. the Zinc database format in the new language.  Neither are desireable,
  85. nor did we ever have the resources.  The use of Zinc did succeed in
  86. its initial goals:
  87.  
  88.   construct a GUI front end for C-Kermit that would reduce the 
  89.   need for end users to understand the C-Kermit command language
  90.   in order to configure and establish connections to hosts over
  91.   a wide range of connection types; and do so on multiple operating
  92.   systems on multiple architectures in a manner that allowed for
  93.   database portability.  
  94.  
  95. The initial versions of K95 were shipped on OS/2 (X86) plus Windows
  96. 95/NT4 (X86,MIPS,Alpha,PPC).  We even had a PowerPC version for OS/2
  97. but it was never publicly released since the operating system itself
  98. was never released.  It was possible to use a single Dialer database
  99. on multiple operating systems in multi-boot scenarios.  At one point I
  100. had a database shared by OS/2, Windows 95, NT4, and Windows 95 (Hebrew
  101. edition.)
  102.  
  103. Porting OS/2 C-Kermit to Windows was a challenge in itself.  C-Kermit
  104. is a single threaded application.  OS/2 C-Kermit is multi-threaded
  105. (separate threads for command processor, keyboard/mouse input, screen
  106. display, and device/network I/O processing) but it can count on all
  107. thread independent signals being delivered to the first thread in the
  108. process.  In Windows, thread independent signals are delivered to the
  109. process in their own thread.  To this day I am still not satified with
  110. the cross platform model I developed to handle events such as SIGINT.
  111. The existing implementation works well enough for most purposes and
  112. there have always been an endless number of new features to add to K95
  113. such that I have never had the time to re-visit the design of this
  114. fundamental building block.
  115.  
  116. Looking back over the last eight years it is somewhat incredible to
  117. think about what was acheived.  In 1995, the source code for K95 was
  118. less than 80,000 lines in total.  The executable for the Windows X86
  119. was 786k.  For the 2.1 release the base source code over 500,000 lines
  120. of code not including support for SRP, Kerberos, SSL/TLS, and SSH; the
  121. k95g executable is 3566.5K.  The security protocol support adds another 1.2
  122. million lines of source code plus almost 3MB in supporting DLLs.  
  123.  
  124. Then there is all of the documentation that was written: 88,000 lines
  125. (the original release had 5235 lines of documentation.)  [This does
  126. not include the "Using C-Kermit" book which Frank and Christine were
  127. able to update only once during this time frame.  To accomodate all of
  128. the new documentation which has been written, an updated "Using
  129. C-Kermit" current with version 8.0 would need to be 1800 pages in
  130. length.]
  131.  
  132. I tried to look back and summarize all of the features that were added
  133. to Kermit in the last eight years and I became overwhelmed.  There
  134. were 35 plus terminals that were emulated; streaming Kermit protocol;
  135. the Internet Kermit Service; all of the IETF work (TELNET AUTH SRP,
  136. TELNET AUTH KRB5, TELNET START-TLS, TELNET FORWARD-X, PKIX, TLS,
  137. KERBEROS 5, SSH 2, FTP AUTH TLS; TN3270 extensions; DNS SRV); UTF8
  138. terminal support; URL hotspots; mouse event programming; Windows
  139. Telephony; DECNET; TELNET; RLOGIN; KLOGIN; Remote COM-PORT-CONTROL;
  140. HTTP; FTP; all of the security implementations; Bidirectional Printer
  141. Management; the GUI release; export permission; and thousands of other
  142. things that I just can't summarize because (to be honest) I can't
  143. remember.  I tried to use the Internet Wayback Machine
  144.  
  145.   http://web.archive.org/web/*/http://www.columbia.edu/kermit/k95.html
  146.  
  147. but its almost as if everything on the current k95.html page is new.
  148.  
  149. One of the greatest aspects of my work on Kermit has been that the
  150. impact of my work has not been limited only to the Kermit product and
  151. its users.  Through Kermit I have participated in the Internet
  152. Engineering Task Force on numerous working groups and have either
  153. authored or edited over two dozen Internet-Drafts and RFCs.  In
  154. addition, I have been an active contributor to various OpenSource
  155. projects: OpenSSL; MIT Kerberos; Tom Wu's Secure Remote Password
  156. distribution; Peter Runestig's Secure Telnet and FTP clients and
  157. servers; Denis Sbragion's Sredird Telnet Com-Port-Control daemon; plus
  158. many others.  I participated as an unofficial observer in the Commerce
  159. Department BIS advisory council meetings on export control.  Plus I was
  160. able to work with purely commercial companies to help them ensure that
  161. their products were compliant with protocols implemented within Kermit.
  162.  
  163. With all of this there is always more that I wish I could have
  164. accomplished.  We never did implement TN3270/TN5250 within Kermit.
  165. Nor did we ever port the terminal emulator to MacOS or X-Windows.  The
  166. BeOS port never truly worked and we don't support PalmOS or Windows
  167. CE/PocketPC devices.  The Internet Kermit Service never received wide
  168. enough support from OS vendors such as IBM, Sun, HP, Compaq, and
  169. RedHat.  Support for security features on VMS is still not complete.
  170. We never got to develop a drag/drop file transfer interface for
  171. Kermit, Zmodem, and FTP.  But overall I believe that Kermit 95 is a
  172. very good product that in many ways probably does too much.  :-)
  173.  
  174. Unfortunately, my time to work on Kermit as a Columbia University
  175. staff member has come to an end and it is time for me to move on to 
  176. other endeavors even if I am not quite sure what they will be.  
  177.  
  178. I still consider myself a member of the Kermit Project even if I am
  179. not paid to be.  Kermit has been a part of my life for fifteen years.
  180. It was a lab for me when I was in college and then grad school.  When
  181. I got my first job as a developer after receiving my Masters I
  182. continued to work on C-Kermit eventually taking the reins of the OS/2
  183. port from Kai Uwe Rommel.  I left that job for Columbia because the 20
  184. hours a week I was spending on Kermit was a lot more enjoyable than
  185. the work I did for my employer.  I can't imagine how it would be possible
  186. for me to simply give it up now but my work on Kermit has caused me to
  187. grow far beyond what is possible within Kermit.  Therefore, Kermit is 
  188. going to have to become a smaller piece of my life.
  189.  
  190. My participation in open source projects such as MIT Kerberos and
  191. OpenSSL will continue.  My participation in the IETF will continue.
  192. Over the last year and a half I have become very interested in Peer to
  193. Peer overlay networks and purely distributed authentication systems.
  194. I have been active in the Project JXTA community <http://www.jxta.org>
  195. and currently sit on its Board.  I have been actively pursuing the
  196. creation of an IETF P2P Working Group to standardize a suite of P2P
  197. protocols; and an IRTF P2P Research Group to study the effects of P2P
  198. overlay networks on an Internet containing 10^14 nodes (today's
  199. Internet has less than 10^9 nodes.)  It is my hope that my next
  200. employeer will provide me the opportunity to continue this work.
  201.  
  202. In the meantime, I will be available on a contract basis through
  203. Internet Access Methods <http://www.iamethods.com> /
  204. <http://www.iamx.com> for development or consulting work on Kermit;
  205. Peer to Peer systems; or various Security efforts.  I can be 
  206. reached either at jaltman AT columbia.edu or jaltman AT iamx.com.
  207.  
  208. Last but not least I want to say thank you to Frank da Cruz, Max
  209. Evarts, Christine Gianone, everyone I've worked with at Columbia
  210. University; and all of the wonderful users that have supported Kermit
  211. over the years most notably: Peter Runestig, Mark Zinzow, Kent Martin,
  212. Arthur Marsh, Perry Wolfe, Robert Strickler, Greg Belenger, Clarence
  213. Dold, Thomas Dickey, Jim Schneider, Vincent Fatica, Gene Alexander,
  214. and everyone else whose name I can't pull off the top of my head.
  215. Without you Kermit would not be any fun at all.
  216.  
  217. Jeffrey Altman
  218. Volunteer Kermit Developer
  219.  
  220.  Jeffrey Altman * Volunteer Developer      Kermit 95 2.1 GUI available now!!!
  221.  The Kermit Project @ Columbia University  SSH, Secure Telnet, Secure FTP, HTTP
  222.  http://www.kermit-project.org/            Secured with MIT Kerberos, SRP, and 
  223.  kermit-support@columbia.edu               OpenSSL.
  224.